From a71edd2925540b0c0fdeba31258fd9019dca4542 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timm=20B=C3=A4der?= Date: Fri, 5 May 2017 18:24:52 +0200 Subject: [PATCH] widget: Add private get_margin_allocation --- gtk/gtkwidget.c | 20 ++++++++++++++++++++ gtk/gtkwidgetprivate.h | 3 +++ 2 files changed, 23 insertions(+) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index ea8fa4c153..649edb3844 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -13672,6 +13672,26 @@ gtk_widget_get_border_allocation (GtkWidget *widget, margin.bottom + border.bottom; } +void +gtk_widget_get_margin_allocation (GtkWidget *widget, + GtkAllocation *allocation) +{ + GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget); + GtkBorder margin, border; + GtkCssStyle *style; + + style = gtk_css_node_get_style (priv->cssnode); + get_box_margin (style, &margin); + get_box_border (style, &border); + + *allocation = priv->allocation; + + allocation->x += margin.left; + allocation->y += margin.top; + allocation->width -= margin.left + margin.right; + allocation->height -= margin.top + margin.bottom; +} + /** * gtk_widget_set_allocation: * @widget: a #GtkWidget diff --git a/gtk/gtkwidgetprivate.h b/gtk/gtkwidgetprivate.h index e9acd9acf3..6702c8653f 100644 --- a/gtk/gtkwidgetprivate.h +++ b/gtk/gtkwidgetprivate.h @@ -322,6 +322,9 @@ void gtk_widget_get_content_allocation (GtkWidget *wi GtkAllocation *allocation); void gtk_widget_get_border_allocation (GtkWidget *widget, GtkAllocation *allocation); +void gtk_widget_get_margin_allocation (GtkWidget *widget, + GtkAllocation *allocation); + GtkWidget * gtk_widget_common_ancestor (GtkWidget *widget_a, GtkWidget *widget_b); -- 2.30.2